/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.liquidByte.trafficMustang.server.services;

import java.util.List;
import javax.ejb.Local;
import org.liquidByte.trafficMustang.server.dataModel.*;

/**
 *
 * @author Alexandre
 */
@Local
public interface TrechoService {

    void embarque(Localizacao localizacao, Trecho trecho) throws BusinessException;
    
    void desembarque(Localizacao localizacao, Trecho trecho) throws BusinessException;
    
    void requisitar(Deslocamento deslocamento) throws BusinessException;
    
    void confirmar(Trecho trecho) throws BusinessException;
    
    void negar(Trecho trecho) throws BusinessException;
    
    void cancelar(Trecho trecho) throws BusinessException;
    
    void abortar(Trecho trecho);
    
    boolean isFinalState(Trecho trecho);

    List<Trecho> getPendente(Motorista motorista);

    List<Trecho> getPendente(Passageiro passageiro);

    boolean existePendencia(Passageiro passageiro);
}
